今天介紹一下如何簡單上手反編譯Android app
首先需要下載兩個工具以及準備一個要被反編譯的apk檔案
接著把兩個壓縮檔都解壓縮後, 把apk檔放到dex2jar-0.0.9.15目錄底下
再執行./d2j-dex2jar.sh hello.apk
會在當前目錄產生一個hello-dex2jar.jar檔案
最後使用jd-gui打開就可以看到source code(Java部分)囉!
以Linux command line為例:
#先建立一個工作目錄
$mkdir jdgui-works
#把需要的東西都搬進去
$mv jd-gui-0.3.5.linux.i686.tar.gz jdgui-works
$mv dex2jar-0.0.9.15.zip jdgui-works
$mv hello.apk jdgui-works
#進入資料夾解壓縮
$cd jdgui-works
$tar -xzvf jd-gui-0.3.5.linux.i686.tar.gz
$unzip dex2jar-0.0.9.15.zip
#把apk搬到dex2jar的資料夾下
$mv hello.apk dex2jar-0.0.9.15/
#進入dex2jar的資料夾
$cd dex2jar-0.0.9.15
#反編譯
$./d2j-dex2jar.sh hello.apk
#回到上一層資料夾
$cd ../
#用jd-gui開啟jar
$./jd-gui dex2jar-0.0.9.15/hello-dex2jar.jar
畫面如下:
P.S.1 雖然有些物件會被換成ID形式, 不過如果沒有經Proguard保護的apk, 大致都還可看出程式脈絡
P.S.2 未經原作者允許而反編譯apk可能會有觸法的風險, 請小心謹慎, 本篇僅供研究參考使用